const common = {
    /**
     *判断对象类型
     * @param object
     * @returns {string} - Null、Undefined、String、Number、Boolean、Function、Date、Array、Object
     */
    getType(object) {
        return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
    },
    /**
     * 有选择性的复制部分属性
     * @param target - 目标对象
     * @param source - 源对象
     * @param keys - 需要复制的字段
     */
    assign(target, source, keys) {
        if (Array.isArray(keys) && this.getType(target) === 'Object' && this.getType(source) === 'Object') {
            keys.forEach(key => {
                target[key] = source[key];
            });
            return target;
        } else {
            throw 'common.assign:参数类型不符'
        }
    },

    //#ifdef H5

    /**
     * 读取地址栏参数
     */
    getPara() {
        let queryStr = self.location.href.split("?"),
            GETs, result = {}, item;
        if (queryStr[1]) {
            //过滤掉#及其后面的部分
            GETs = queryStr[1].toString().split('#')[0].split("&");
            for (let i = 0; i < GETs.length; i++) {
                item = GETs[i].split("=");
                result[item[0].toLowerCase()] = item[1];
            }
        }
        return result;
    }
    //endif

};

export default common;

export {
    common
}
